package com.slife.snap.domain;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.slife.snap.config.JsonbTypeHandler;
import com.slife.snap.utils.ListUtils;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.sql.Timestamp;
import java.util.Date;
import java.util.List;

/**
 * 
 * @TableName tb_record_list
 */
@TableName(value ="tb_record_list",autoResultMap = true)
public class TbRecordList   implements Serializable  {
    /**
     * 主键id
     */
    @TableId
    private String id;

    /**
     * 第一次抓拍记录id
     */
    private String firstId;

    /**
     * 第二次抓拍记录id
     */
    private String secondId;

    /**
     *  车牌号码
     */
    private String plateNumber;

    /**
     * 状态
     */
    private String status;
    private String firstType;
    private String secondType;
    @TableField(exist = false)
    private String goodsType;

    /**
     * 第一次称重值
     */
    private Double firstWeight;

    /**
     * 第二次称重值
     */
    private Double secondWeight;

    /**
     * 净重值
     */
    private Double suttleWeight;

    /**
     * 第一次称重时间
     */
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    private Timestamp firstTime;

    /**
     * 第二次称重时间
     */
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    private Timestamp secontTime;

    /**
     * 第一次抓拍图片
     */
    @TableField(typeHandler= JsonbTypeHandler.class)
    private List<ImgEntity> firstImgs;

    /**
     * 第二次抓拍图片
     */
    @TableField(typeHandler= JsonbTypeHandler.class)
    private List<ImgEntity>  secondImgs;

    /**
     * 运输垃圾类型
     */
    private String pType;

    /**
     * 车辆类型
     */
    private String stype;

    /**
     * 是否推送
     */
    private Boolean pushFlag;

    /** 当前分页 */
    @TableField(exist = false)
    private Integer pageNum;
    /** 分页长度 */
    @TableField(exist = false)
    private Integer pageSize;

    /**
     * 来源
     */
    private String source;

    /**
     * 车辆所属公司
     */
    private String commpanyName;
    private String carType;

    /**
     * 垃圾去向
     */
    private String goWhere;



    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    /**
     * 备注
     */
    private String remark;

    /**
     * 是否推送成生
     */
    private Boolean slifeFlag;

    public String getCarType() {
        return carType;
    }

    public void setCarType(String carType) {
        this.carType = carType;
    }

    /**
     * 创建时间
     */
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss ",timezone = "GMT+8")
    private Date createTime;

    /**
     * 更新时间
     */
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss ",timezone = "GMT+8")
    private Date updateTime;

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;

    /**
     * 主键id
     */
    public String getId() {
        return id;
    }

    /**
     * 主键id
     */
    public void setId(String id) {
        this.id = id;
    }

    /**
     * 第一次抓拍记录id
     */
    public String getFirstId() {
        return firstId;
    }

    /**
     * 第一次抓拍记录id
     */
    public void setFirstId(String firstId) {
        this.firstId = firstId;
    }

    /**
     * 第二次抓拍记录id
     */
    public String getSecondId() {
        return secondId;
    }

    /**
     * 第二次抓拍记录id
     */
    public void setSecondId(String secondId) {
        this.secondId = secondId;
    }

    /**
     * 第一次称重值
     */
    public Double getFirstWeight() {
        return Math.abs(ListUtils.getRoudValue(firstWeight));
    }

    /**
     * 第一次称重值
     */
    public void setFirstWeight(Double firstWeight) {
        this.firstWeight = firstWeight;
    }

    /**
     * 第二次称重值
     */
    public Double getSecondWeight() {
        return Math.abs(ListUtils.getRoudValue(secondWeight));
    }



    /**
     * 第二次称重值
     */
    public void setSecondWeight(Double secondWeight) {
        this.secondWeight = secondWeight;
    }

    public String getPlateNumber() {
        return plateNumber;
    }

    public void setPlateNumber(String plateNumber) {
        this.plateNumber = plateNumber;
    }

    /**
     * 净重值
     */
    public Double getSuttleWeight() {
        return Math.abs(ListUtils.getRoudValue(suttleWeight));
    }

    public String getGoodsType() {

        if (firstWeight - secondWeight >0){
            return "卸货";
        }else {
            return "装货";
        }
//        return goodsType;
    }

    public void setGoodsType(String goodsType) {
        this.goodsType = goodsType;
    }

    /**
     * 净重值
     */
    public void setSuttleWeight(Double suttleWeight) {
        this.suttleWeight = suttleWeight;
    }

    /**
     * 第一次称重时间
     */
    public Timestamp getFirstTime() {
        return firstTime;
    }

    /**
     * 第一次称重时间
     */
    public void setFirstTime(Timestamp firstTime) {
        this.firstTime = firstTime;
    }

    /**
     * 第二次称重时间
     */
    public Timestamp getSecontTime() {
        return secontTime;
    }

    /**
     * 第二次称重时间
     */
    public void setSecontTime(Timestamp secontTime) {
        this.secontTime = secontTime;
    }

    /**
     * 第一次抓拍图片
     */
    public List<ImgEntity>  getFirstImgs() {
        return firstImgs;
    }

    /**
     * 第一次抓拍图片
     */
    public void setFirstImgs(List<ImgEntity>  firstImgs) {
        this.firstImgs = firstImgs;
    }

    /**
     * 第二次抓拍图片
     */
    public List<ImgEntity>  getSecondImgs() {
        return secondImgs;
    }

    /**
     * 第二次抓拍图片
     */
    public void setSecondImgs(List<ImgEntity>  secondImgs) {
        this.secondImgs = secondImgs;
    }

    /**
     * 运输垃圾类型
     */
    public String getpType() {
        return pType;
    }

    /**
     * 运输垃圾类型
     */
    public void setpType(String pType) {
        this.pType = pType;
    }

    /**
     * 车辆类型
     */
    public String getStype() {
        return stype;
    }

    /**
     * 车辆类型
     */
    public void setStype(String stype) {
        this.stype = stype;
    }

    /**
     * 是否推送
     */
    public Boolean getPushFlag() {
        return pushFlag;
    }

    /**
     * 是否推送
     */
    public void setPushFlag(Boolean pushFlag) {
        this.pushFlag = pushFlag;
    }

    /**
     * 来源
     */
    public String getSource() {
        return source;
    }

    public String getFirstType() {
        return firstType;
    }

    public void setFirstType(String firstType) {
        this.firstType = firstType;
    }

    public String getSecondType() {
        return secondType;
    }

    public void setSecondType(String secondType) {
        this.secondType = secondType;
    }

    /**
     * 来源
     */
    public void setSource(String source) {
        this.source = source;
    }

    /**
     * 车辆所属公司
     */
    public String getCommpanyName() {
        return commpanyName;
    }

    /**
     * 车辆所属公司
     */
    public void setCommpanyName(String commpanyName) {
        this.commpanyName = commpanyName;
    }

    /**
     * 垃圾去向
     */
    public String getGoWhere() {
        return goWhere;
    }

    /**
     * 垃圾去向
     */
    public void setGoWhere(String goWhere) {
        this.goWhere = goWhere;
    }

    /**
     * 备注
     */
    public String getRemark() {
        return remark;
    }

    /**
     * 备注
     */
    public void setRemark(String remark) {
        this.remark = remark;
    }

    /**
     * 是否推送成生
     */
    public Boolean getSlifeFlag() {
        return slifeFlag;
    }

    /**
     * 是否推送成生
     */
    public void setSlifeFlag(Boolean slifeFlag) {
        this.slifeFlag = slifeFlag;
    }

    /**
     * 创建时间
     */
    public Date getCreateTime() {
        return createTime;
    }

    /**
     * 创建时间
     */
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    /**
     * 更新时间
     */
    public Date getUpdateTime() {
        return updateTime;
    }

    /**
     * 更新时间
     */
    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    public Integer getPageNum() {
        return pageNum;
    }

    public void setPageNum(Integer pageNum) {
        this.pageNum = pageNum;
    }

    public Integer getPageSize() {
        return pageSize;
    }

    public void setPageSize(Integer pageSize) {
        this.pageSize = pageSize;
    }

    @Override
    public String toString() {
        return "TbRecordList{" +
                "id='" + id + '\'' +
                ", firstId='" + firstId + '\'' +
                ", secondId='" + secondId + '\'' +
                ", plateNumber='" + plateNumber + '\'' +
                ", status='" + status + '\'' +
                ", firstWeight=" + firstWeight +
                ", secondWeight=" + secondWeight +
                ", suttleWeight=" + suttleWeight +
                ", firstTime=" + firstTime +
                ", secontTime=" + secontTime +
                ", firstImgs=" + firstImgs +
                ", secondImgs=" + secondImgs +
                ", pType='" + pType + '\'' +
                ", stype='" + stype + '\'' +
                ", pushFlag=" + pushFlag +
                ", source='" + source + '\'' +
                ", commpanyName='" + commpanyName + '\'' +
                ", goWhere='" + goWhere + '\'' +
                ", remark='" + remark + '\'' +
                ", slifeFlag=" + slifeFlag +
                ", createTime=" + createTime +
                ", updateTime=" + updateTime +
                '}';
    }
}